/**
 * ____________________ *
 *  ____ ____ ____ _  _ *
 *  |___ [__] |--< |\/| *
 * ____________________ *
 *
 * THE CORM PROJECT
 *
 * This file may only be used in accordance with the
 * terms of the Academic Free License ("AFL") v. 3.0,
 * as published by the Open Software Initiative.  A
 * copy of this license is provided in this source
 * release, and may be viewed online at:
 *
 * (http://www.opensource.org/licenses/afl-3.0.php)
 */
package org.eremite.corm.party.relationship;

import org.eremite.corm.Archetype;

import java.util.HashSet;
import java.util.Set;

public class PartyRoleType
        extends Archetype {

    private long id;
    private Set<PartyRoleConstraint> constraints = new HashSet<PartyRoleConstraint>();
    private Set<Responsibility> mandatoryResponsibilities = new HashSet<Responsibility>();
    private Set<Responsibility> optionalResponsibilities = new HashSet<Responsibility>();

    public PartyRoleType(){}

    public long getID() {
        return this.id;
    }
    public void setID(long id) {
        this.id = id;
    }

//    public boolean canPlayRole(Party party) { throw new NotImplementedException(); }

    public Set<PartyRoleConstraint> getConstraints() {
        return this.constraints;
    }
    public void setConstraints(Set<PartyRoleConstraint> constraints) {
        this.constraints = constraints;
    }

    public Set<Responsibility> getMandatoryResponsibilities() {
        return this.mandatoryResponsibilities;
    }
    public void setMandatoryResponsibilities(Set<Responsibility> responsibilities) {
        this.mandatoryResponsibilities = responsibilities;
    }

    public Set<Responsibility> getOptionalResponsibilities() {
        return this.optionalResponsibilities;
    }
    public void setOptionalResponsibilities(Set<Responsibility> responsibilities) {
        this.optionalResponsibilities = responsibilities;
    }
}
